package com.desire.homework;

import java.io.File;
import java.io.IOException;
import java.util.Objects;

/**
 * @author desire
 */
public class _30_删除目录 {
    public static void main(String[] args) {
        //delDirectoryRecursion(new File("C:\\abc"));
        delDirectorySystem("C:\\abc");
    }


    public static void delDirectorySystem(String string) {
        delDirectorySystem(new File(string));
    }

    /**
     * 调用系统命令删除
     *
     * @param file
     */
    public static void delDirectorySystem(File file) {
        // 执行系统命令
        Runtime run = Runtime.getRuntime();

        // Windows 10
        String os = System.getProperty("os.name");
        try {
            if (os.contains("Linux")) {
                run.exec(String.format("rm -rf %s", file));
            } else if (os.contains("Windows")) {
                run.exec(String.format("cmd /k rmdir /S /Q %s", file));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    /**
     * 重载方法 传入字符串的路径也行
     *
     * @param string
     */
    public static void delDirectoryRecursion(String string) {
        delDirectoryRecursion(new File(string));
    }

    /**
     * 方法一
     * 递归删除目录
     *
     * @param file
     */
    public static void delDirectoryRecursion(File file) {
        if (file.exists() && file.isDirectory()) {
            for (File listFile : Objects.requireNonNull(file.listFiles())) {
                if (listFile.isDirectory()) {
                    delDirectoryRecursion(listFile);
                } else {
                    listFile.delete();
                }
            }
        } else {
            file.delete();
        }
        file.delete();
    }
}
